Galileo Computing < openbook >
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.

...powered by www.netzwerkartist.de...

Kompendium der Informationstechnik
 von Sascha Kersken
EDV-Grundlagen, Programmierung, Mediengestaltung
Buch: Kompendium der Informationstechnik
gp Kapitel 13 Netzwerkhardware und -protokolle
  gp 13.1 Netzwerkkarten, -kabel und Netzzugangsverfahren
    gp 13.1.1 Die verschiedenen Ethernet-Standards
    gp 13.1.2 Token Ring
    gp 13.1.3 Drahtlose Netze
    gp 13.1.4 Sonstige Zugangsarten
  gp 13.2 Datenfernübertragung
    gp 13.2.1 Netzwerkzugang per Modem (analoge Telefonleitung)
    gp 13.2.2 ISDN
    gp 13.2.3 DSL-Dienste
  gp 13.3 Die TCP/IP-Protokollfamilie
    gp 13.3.1 IP-Adressen, Datagramme und Routing
    gp 13.3.2 Transportprotokolle
    gp 13.3.3 Das Domain Name System (DNS)
    gp 13.3.4 Verschiedene Internet-Anwendungsprotokolle
  gp 13.4 Andere Protokollstapel
    gp 13.4.1 Die AppleTalk-Protokollfamilie
    gp 13.4.2 Novell IPX/SPX
    gp 13.4.3 NetBEUI/SMB
  gp 13.5 Zusammenfassung

gp

Prüfungsfragen zu diesem Kapitel (extern)


Galileo Computing

13.3 Die TCP/IP-Protokollfamilie  downtop

Nach einigen halbherzigen Versuchen, das OSI-Referenzmodell durch konkrete Protokolle tatsächlich zu implementieren, bemerkte man letzten Endes, dass die bereits Jahre zuvor entwickelten Internetprotokolle hervorragend als flexible, skalierbare und universelle Netzwerkprotokollfamilie einsetzbar sind. Die rasante Ausbreitung des Internets und die freie Verfügbarkeit sorgten dafür, dass diese Protokolle heute häufiger als jeder andere Protokollstapel eingesetzt werden.


Abbildung 13.1   Der TCP/IP-Protokollstapel

Abbildung
Hier klicken, um das Bild zu Vergrößern


Der Internet-Protokollstapel

Zunächst zeigt Abbildung 13.1 eine konkrete Version des TCP/IP-Protokollstapels, der bereits im vorigen Kapitel vorgestellt wurde: Auf jeder Ebene sind die konkreten Protokolle zu erkennen, die dort arbeiten können. Die meisten dieser Protokolle werden in den folgenden Abschnitten genau erläutert; die Netzzugangsprotokolle der untersten Schicht wurden bereits weiter oben vorgestellt. Ganz unten habe ich zusätzlich einige Beispiele für die Hardware angegeben, auch wenn sie kein Teil des eigentlichen TCP/IP-Stapels ist.

Zwischen der Hardware und dem Netzzugang auf der einen und den anwendungsorientierten Protokollen auf der anderen Seite befinden sich die Protokolle der Vermittlungs- und der Transportschicht. Insgesamt werden alle Protokolle, die auf den verschiedenen Ebenen eines Schichtenmodells zusammenarbeiten, als Protokollstapel oder auch Protokollfamilie bezeichnet. Allerdings konzentriert sich der Schwerpunkt von TCP/IP auf die beiden mittleren Ebenen des Internet-Protokollstapels. Sie können zum einen auf fast jeden beliebigen Netzzugang aufsetzen, zum anderen wurde beinahe jede ernst zu nehmende Netzwerkanwendung inzwischen für diesen Protokollstapel umgesetzt - abgesehen von den klassischen Internetanwendungen, die ohnehin dafür geschrieben wurden.

Die Protokolle der mittleren Schichten sind dafür verantwortlich, dass Daten zuverlässig über verschiedene Teilnetze oder Netzwerksegmente hinweg übertragen werden können oder auch über Netze, die verschiedene Hardware oder Netzzugangsverfahren verwenden:

gp  Die Protokolle der Vermittlungsschicht regeln die Adressierung der Rechner und die Übertragung der Daten an den korrekten Rechner im Netzwerk. Darüber hinaus kümmern sie sich darum, dass Daten bei Bedarf in andere Teilnetze weitergeleitet werden, übernehmen also das so genannte Routing.
gp  Auf der Transportschicht werden die Daten in Pakete unterteilt sowie mit der Information versehen, welche Anwendung auf dem einen Host diese Daten an welche Anwendung auf dem anderen sendet.

Die Bezeichnung TCP/IP kombiniert die Namen der beiden wichtigsten Bestandteile des Protokollstapels: das Internet Protocol (IP) auf der Vermittlungsschicht und das Transmission Control Protocol, das am häufigsten verwendete Protokoll der Transportebene. In den nächsten beiden Abschnitten werden diese Protokolle näher vorgestellt, anschließend wird die technische Seite einiger wichtiger Internet-Anwendungsprotokolle beleuchtet.


Galileo Computing

13.3.1 IP-Adressen, Datagramme und Routing  downtop

Auf der Internet- oder Vermittlungs-Schicht des Internet-Protokollstapels arbeitet das Internet Protocol (IP). Als Internet wird in diesem Zusammenhang jedes Netzwerk bezeichnet, das diese Protokollfamilie verwendet. Dies verdeutlicht den Umstand, dass die Internetprotokolle dem Datenaustausch über mehrere physikalische Netzwerke hinweg dienen können. Spezielle Rechner, die mindestens zwei Netzwerkschnittstellen besitzen, leiten die Daten zwischen diesen Netzen weiter. Sie werden als IP-Router oder -Gateways bezeichnet. Im engeren Sinne ist ein Router ein Rechner, der Daten zwischen zwei Netzen des gleichen physikalischen Typs weiterleitet; ein Gateway verbindet dagegen zwei physikalisch verschiedene Netze. In der Regel werden die beiden Begriffe jedoch heute synonym verwendet.

Aufbau der IP-Adressen

Eine IP-Adresse des klassischen Typs - der Version IPv4 gemäß RFC 791 - ist eine 32 Bits lange Zahl. Sie wird üblicherweise in vier durch Punkte getrennten Dezimalzahlen zwischen 0 und 255 geschrieben. Allerdings ist die Logik, die einer solchen Adresse zugrunde liegt, besser verständlich, wenn sie binär notiert wird:

Eine typische IP-Adresse wäre etwa 11000010000100010101000111000001, in 8-Bit-Gruppen getrennt ergibt sich daraus 11000010 00010001 01010001 11000001 und lautet in der gängigen Schreibweise dann 194.17.81.193.

Netzzugang in TCP/IP-Netzwerken

Die unterste Ebene des Internet-Schichtenmodells ist der Netzzugang, nicht die Netzwerkhardware. Dies garantiert, dass sich die Internetprotokolle auf fast jeder beliebigen Hardware implementieren lassen, und in der Tat ist dies geschehen: In allen Formen von LANs wie Ethernet oder Token Ring, in WANs über Wähl- und Standleitungen wie auch über die meisten Formen von drahtlosen Netzen - überall laufen diese Protokolle. Dies ist ein weiterer guter Grund dafür, dass sich die Protokolle des Internets als Standard für die Netzwerkkommunikation durchsetzen konnten.

Im Grunde wird innerhalb der Spezifikation der TCP/IP-Protokolle nicht einmal der Netzzugang im OSI-Sinn beschrieben, sondern lediglich die Zusammenarbeit des IP-Protokolls, das sich innerhalb des Internet-Protokollstapels um Adressierung und Routing kümmert, mit verschiedenen Netzzugangsverfahren.

An dieser Stelle sollen nur zwei der wichtigsten Internet-Netzzugangsverfahren genannt werden: das für den Zugriff auf Ethernet verwendete Address Resolution Protocol (ARP) und das Point-to-Point Protocol (PPP), das für serielle Verbindungen über Modem, ISDN oder DSL eingesetzt wird. PPP wurde bereits weiter oben ausführlich beschrieben; hier das Wichtigste über ARP:

ARP

Das Address Resolution Protocol, beschrieben in RFC 826, übernimmt kurz gesagt die Umsetzung der vom Netzwerkadministrator vergebenen IP-Adressen in die vorgegebenen Hardware-Adressen der Netzwerkschnittstellen.

Da die IP-Adresse den einzelnen Hosts willkürlich zugeteilt wird, kann diese auf der Netzzugangsschicht nicht bekannt sein: Auf einer bestimmten Schicht eines Protokollstapels werden die Steuerdaten der höher gelegenen Ebenen nicht ausgewertet, sondern als gewöhnliche Nutzdaten betrachtet. Deshalb kann beispielsweise eine Netzwerkkarte oder ein Hub nicht anhand der IP-Adresse entscheiden, für welche Station ein Datenpaket bestimmt ist; sie nehmen diese Adresse nicht einmal wahr.

Nachdem die IP-Software auf einem Host oder Router anhand der Empfänger-IP-Adresse festgestellt hat, dass die Daten überhaupt für das eigene Netz bestimmt sind, wird der ARP-Prozess gestartet, um diese IP-Adresse in die MAC-Adresse des Empfänger-Hosts umzusetzen. Zu diesem Zweck sendet ein Rechner, der das ARP-Protokoll ausführt (beinahe jeder Rechner, der TCP/IP über Ethernet betreibt), ein so genanntes Broadcast-Datenpaket in das Netzwerk. Es handelt sich um ein Datenpaket mit einer speziellen Empfängeradresse, das an alle Rechner im Netzwerk übertragen wird. Der Rechner, der seine eigene IP-Adresse im Inhalt dieses Pakets erkennt, antwortet als Einziger auf diese Anfrage und versendet seine eigene MAC-Adresse. Auf diese Weise wird ermittelt, für welchen Rechner das Datenpaket bestimmt ist.

In Ausnahmefällen kann ein Rechner auch die MAC-Adressen anderer Stationen zwischenspeichern und in Vertretung antworten.

IP-Adress-Klassen

IP-Adressen bestehen aus zwei Komponenten: dem Netzwerk-Teil und dem Host-Teil. Der Netzwerk-Teil gibt an, in welchem Netz sich der entsprechende Rechner befindet, während der Host-Teil den einzelnen Rechner innerhalb dieses Netzes identifiziert.

Es gibt verschiedene Sorten von IP-Adressen, die sich bezüglich der Länge des Netzwerk- beziehungsweise Host-Teils voneinander unterscheiden. Traditionell werden die verfügbaren Adressen in feste Klassen unterteilt; inzwischen hat sich jedoch herausgestellt, dass diese Lösung allein zu inflexibel ist. Deshalb wurden Verfahren entwickelt, um die Trennung zwischen Netzwerk- und Host-Teil dynamisch vorzunehmen. Trotzdem werden als Erstes die ursprünglichen festen Klassen vorgestellt, denn noch immer erfolgt die öffentliche Vergabe von IP-Adressen an Netzbetreiber nach der Klassen-Logik.

Zu welcher Klasse eine IP-Adresse gehört, zeigt sich an den Bits, die am weitesten links stehen:

gp  Klasse A: Das erste Bit ist 0, folglich liegt die erste 8-Bit-Gruppe zwischen 0 und 127.
gp  Klasse B: Die ersten beiden Bits lauten 10; die erste Gruppe liegt im Bereich 128 bis 191.
gp  Klasse C: Die ersten drei Bits sind 110, sodass die erste Gruppe zwischen 192 bis 223 liegt.
gp  Klasse D: Die ersten vier Bits sind 1110; die Adressen beginnen mit 224 bis 239.

Die restlichen Adressen, die mit 240 bis 255 anfangen, sind nicht vergeben und für zukünftige Anwendungszwecke reserviert.

Je nach Klasse ist der Teil, der das Netzwerk kennzeichnet, unterschiedlich lang, entsprechend existieren unterschiedlich viele Netze der verschiedenen Klassen. Die Bits, die ganz rechts in der Adresse stehen und nicht zum Netzwerk-Teil gehören, sind die Host-Bits. Je nach Länge des Netzwerk-Teils bleiben unterschiedlich viele Bits für den Host-Teil übrig, sodass die Höchstzahl der Rechner in einem Netz variiert.


Tabelle 13.3   Die IP-Adress-Klassen

Klasse Adressbereich Netzwerk-Bits Host-Bits Anzahl Netze Adressen pro Netz
A 0.0.0.0 bis 127.255.255.255 8 (7) 24 128 16, 7 Mio.
B 128.0.0.0 bis 191.255.255.255 16 (14) 16 16.384 65.536
C 192.0.0.0 bis 223.255.255.255 24 (21) 8 2.097.152 256
D 224.0.0.0 bis 239.255.255.255 Spezieller Bereich der Multicast-Adressen

Tabelle 13.3 zeigt die wichtigsten Informationen zu den einzelnen Klassen im Überblick. In der Spalte Netzwerk-Bits stehen jeweils zwei Werte. Der erste stellt die Anzahl von Bits dar, die insgesamt den Netzwerk-Teil bilden. Da die Grenzen zwischen Netzwerk- und Host-Teil an den Byte-Grenzen verlaufen, handelt es sich je nach Klasse um 1 bis 3 Byte. Da jedoch die Bits am Anfang der Adresse - wie oben gezeigt - die Klasse angeben, besteht die praktisch nutzbare Netzwerkangabe nur aus 7, 14 beziehungsweise 21 Bit. Der Rest der Adresse bildet den Host-Teil, der je nach Klasse unterschiedlich groß ausfällt.

Netz- und Broadcast-Adresse

Innerhalb eines einzelnen Netzes - egal welcher Klasse - stehen die erste und die letzte mögliche Adresse nicht als Host-Adressen zur Verfügung: Die niedrigste Adresse identifiziert das gesamte Netz als solches nach außen hin, aber keinen speziellen Host; die höchste Adresse ist die so genannte Broadcast-Adresse: Werden Datenpakete innerhalb des Netzes an diese Adresse gesendet, so werden sie von jedem Host empfangen.

Zum Beispiel bilden die Adressen, die mit 18.x.x.x beginnen, das Klasse-A-Netzwerk 18.0.0.0 mit der Broadcast-Adresse 18.255.255.255 und Host-Adressen von 18.0.0.1 bis 18.255.255.254. Dieses Netz kann theoretisch bis zu 16.777.214 Hosts beherbergen (224  - 2).

Die Adressen, die mit 162.21.x.x anfangen, befinden sich in dem Klasse-B-Netzwerk 162.21.0.0, dessen Broadcast-Adresse 162.21.255.255 lautet. Es kann bis zu 65.534 Hosts (216   2) mit den Adressen 162.21.0.1 bis 162.21.255.254 enthalten.

Letztes Beispiel: Adressen, die mit 201.30.9.x beginnen, liegen in dem Klasse-C-Netz 201.30.9.0 mit der Broadcast-Adresse 201.30.9.255; die 254 möglichen Host-Adressen (2 - 2) sind 201.30.9.1 bis 201.30.9.254.

Multicasting

Die so genannten Multicast-Adressen der Pseudo-Klasse D nehmen eine Sonderstellung ein: Eine Multicast-Gruppe ist eine auf beliebige Netze verteilte Gruppe von Hosts, die sich dieselbe Multicast-IP-Adresse teilen. Dies ermöglicht einen erheblich ökonomischeren Versand von Daten, da sie nicht mehr je einmal pro empfangendem Host versendet werden, sondern nur noch kopiert werden müssen, wo Empfängerrechner in unterschiedlichen Teilnetzen liegen. Aus diesem Grund ist Multicasting eine zukunftsträchtige Technologie für datenintensive Anwendungen wie etwa Videokonferenzen. Im Gegensatz dazu werden die individuellen Host-Adressen als Unicast-Adressen bezeichnet.

Die Verteilung der IP-Adressen

Alle Adressen des IPv4-Adressraums werden von der Internet Assigned Numbers Association (IANA) verwaltet. Falls Sie jedoch für bestimmte Anwendungen in Ihrem Unternehmen eine oder mehrere feste IP-Adressen benötigen, dann sollten Sie sich in der Regel an einen Internetprovider und nicht an die IANA selbst wenden.

Verfügbarkeit nach Klassen

Die 128 Netze der Klasse A sind bereits alle vergeben; in der Regel an große internationale Unternehmen aus dem Elektronik- und Computerbereich sowie an US-amerikanische Staats-, Militär- und Bildungsinstitutionen. Beispielsweise gehört das Netz 17.0.0.0 der Firma Apple, 18.0.0.0 dem Massachusetts Institute of Technology (MIT) und 19.0.0.0 der Ford Motor Company.

Die 16.384 Klasse-B-Netze sind ebenfalls weitgehend vergeben, insbesondere an US-amerikanische Unternehmen und Internetprovider.

Die mehr als zwei Millionen Netze der Klasse C schließlich sind inzwischen ebenfalls überwiegend belegt. Die meisten von ihnen gehören Unternehmen und Internetprovidern, die nicht in den USA residieren, etwa in Europa oder Asien. Da solche Institutionen oft mehr als 254 Hosts in ihrem Netz betreiben, wird ihnen häufig ein größerer Block von aufeinander folgenden Klasse-C-Netzen zugewiesen.

Die aktuelle Verteilung der IPv4-Adressen können Sie direkt auf der Website der IANA unter http://www.iana.org/assignments/ipv4-address-space einsehen.

Spezielle Adressen

Als das Konzept der IP-Adressen entstand, konnte niemand auch nur ansatzweise erahnen, welche Dimensionen das Internet einmal annehmen würde. Deshalb glaubten die ursprünglichen Entwickler, dass sie es sich leisten könnten, den Adressraum relativ großzügig aufzuteilen: Bedenken Sie etwa, dass die Hälfte des Adressraums für die überaus ineffektiven Klasse-A-Adressen vergeudet wird. Um die drohende Verknappung der IP-Adressen zu verhindern oder zumindest zu verzögern, bis eine Alternative gefunden würde, wurden einige Adressbereiche zur Verwendung in privaten Netzwerken freigegeben, die nicht mit dem Internet verbunden sind. Es handelt sich um die folgenden Blöcke:

gp  Das Klasse-A-Netz 10.0.0.0
gp  Die 16 Klasse-B-Netze 172.16.0.0 bis 172.31.0.0
gp  Die 256 Klasse-C-Netze 192.168.0.0 bis 192.168.255.0

Ein weiterer Block, der erst später freigegeben wurde, ist das Klasse-B-Netz 169.254.0.0, das einem besonderen Verwendungszweck vorbehalten ist: Moderne TCP/IP-Implementierungen in fast allen Betriebssystemen verwenden dieses Netz für »link local« - eine Möglichkeit, sich automatisch selbst IP-Adressen zuzuweisen, falls wider Erwarten keine Verbindung zu einem DHCP-Server hergestellt werden kann, der eigentlich für die automatische Zuweisung von Adressen zuständig wäre.


Vorsicht! In der Literatur zu TCP/IP wird immer wieder behauptet, die privaten Adressbereiche würden durch Router nicht weitergeleitet - als wären öffentliche Internet-Router automatisch so konfiguriert beziehungsweise nicht in der Lage, Daten mit solchen Adressen weiterzuleiten. Aber egal, wie oft Sie diese Formulierung irgendwo lesen und wie seriös die jeweilige Quelle ansonsten sein mag - es stimmt nicht. Router sind durchaus fähig, Datenpakete von solchen Adressen und auch an solche Adressen weiterzuleiten. Natürlich lässt sich dieser Umstand nicht sinnvoll nutzen, weil die Adressen nicht eindeutig sind, sondern definitionsgemäß weltweit beliebig oft zugewiesen sein können. Das Problem besteht vielmehr in einem Sicherheitsrisiko: Datenpakete, die solche Adressen aufweisen, könnten rein zufällig zu Ihrem Netzwerk passen - ein potenzieller Angreifer könnte sich einen besonders häufig genutzten Adressbereich wie das Klasse-C-Netz 192.168.0.0 aussuchen, um Pakete so aussehen zu lassen, als stammten sie aus dem lokalen Netz. Sie sollten daher eine Paketfilter-Firewall so konfigurieren, dass sie diese Pakete an den Grenzen Ihres lokalen Netzes automatisch verwirft.

Zu guter Letzt existieren noch einige Netze mit anderen speziellen Bedeutungen:

gp  Die Adresse 0.0.0.0 kann innerhalb eines Netzes verwendet werden, um sich auf das aktuelle Netz selbst zu beziehen.
gp  Das Klasse-A-Netz 127.0.0.0 beherbergt den so genannten Loopback-Bereich: Über das Loopback-Interface, eine virtuelle Netzwerkschnittstelle mit der Adresse 127.0.0.1, kann ein Host mit sich selbst Netzwerkkommunikation betreiben. Dies ist zum Beispiel nützlich, um während der Programmierung von Client-Server-Anwendungen sowohl das Client- als auch das Server-Programm auf dem lokalen Host laufen zu lassen.
gp  Schließlich wird die Adresse 255.255.255.255 als universelle Broadcast-Adresse verwendet: Ein Datenpaket, das an diese Adresse gesendet wird, wird wie beim normalen Broadcast von allen Hosts im Netzwerk empfangen. Nützlich ist diese Einrichtung für Schnittstellen, die ihre IP-Adresse dynamisch beziehen, da sie bei Inbetriebnahme in der Regel noch nicht einmal wissen, in welchem Netz sie sich eigentlich befinden. Auf diese Weise erhalten sie überhaupt erst die Möglichkeit, die Zuteilung einer Adresse anzufordern.

Die Vergabe der privaten Adressbereiche ist in RFC 1918 geregelt; die Festlegung der anderen speziellen Adressbereiche befindet sich in RFC 3330.

Supernetting, Subnetting und CIDR

In der neueren Entwicklungsgeschichte des Internets hat sich herausgestellt, dass die traditionellen Adressklassen nicht für alle Anwendungsbereiche flexibel genug sind. Deshalb wurde ein neues Schema entwickelt, das die Trennlinie zwischen Netz- und Host-Teil der Adressen an einer beliebigen Bitgrenze ermöglicht. Das in RFC 1519 beschriebene Verfahren heißt Classless Inter-Domain Routing (CIDR).

Die folgenden beiden Anwendungsbeispiele verdeutlichen typische Probleme mit der alten Klassenlogik, die mit Hilfe von CIDR gelöst werden können:

gp  Ein Unternehmen besitzt das Klasse-B-Netzwerk 139.17.0.0. Es wäre jedoch wünschenswert, wenn die vier verschiedenen Filialen des Unternehmens jeweils unabhängige Netze betreiben könnten. Dazu soll das vorhandene Netz in vier Teile unterteilt werden - ein Fall für das so genannte Subnetting.
gp  Ein vor kurzem neu gegründeter europäischer Internetprovider hat die 1.024 Klasse-C-Netze 203.16.0.0 bis 203.19.255.0 erhalten. Das Unternehmen möchte diese Netze als ein großes Netz verwalten, da dies die dynamische Zuteilung an Kunden bei der Einwahl erheblich vereinfacht. Eine solche Zusammenfassung von Netzen wird Supernetting genannt.

CIDR-Funktionsweise

Das Prinzip von CIDR basiert darauf, dass die traditionellen Byte-Grenzen zwischen Netz- und Host-Teil völlig aufgehoben werden. Deshalb ist die Größe des Netzes bei einem CIDR nicht mehr am Beginn der Adresse zu erkennen. Stattdessen wird die Anzahl der Bits, die den Netzwerk-Teil der Adresse bilden, durch einen Slash getrennt hinter der Netzwerkadresse notiert. Zum Beispiel wird das Klasse-A-Netz 14.0.0.0 zu 14.0.0.0/8.

Eine alternative Darstellungsform für die Grenze zwischen Netz- und Host-Teil bei CIDR-Adressen - insbesondere in der IP-Konfiguration der meisten Betriebssysteme - stellt die Teilnetzmaske (englisch Subnet Mask) dar. In dieser Maske werden für die Bits des Netzwerk-Teils am Anfang der Adresse Einsen notiert, für die Bits des Host-Teils am Ende der Adresse dagegen Nullen. Genau wie die IP-Adresse selbst wird auch die Teilnetzmaske in vier dezimalen 8-Bit-Blöcken geschrieben.

Tabelle 13.4 zeigt Beispiele für die Schreibweise der ursprünglichen klassenbasierten Adressen nach CIDR-Logik sowie ihre Teilnetzmasken.


Tabelle 13.4   Die traditionellen IP-Adress-Klassen in CIDR-Darstellung

Klasse Beispielnetz CIDR-Adresse Teilnetzmaske
A 17.0.0.0 17.0.0.0/8 255.0.0.0
B 167.18.0.0 167.18.0.0/16 255.255.0.0
C 195.21.92.0 195.21.92.0/24 255.255.255.0

Das Subnetting aus dem ersten Beispiel, die Unterteilung des Netzes 139.17.0.0/16 in vier gleich große Teilnetze, kann folgendermaßen durchgeführt werden:

gp  Da die 65.536 rechnerischen Adressen in vier Teile unterteilt werden sollen, sind zwei weitere Bits für den Netzwerk-Teil der Adresse erforderlich (4 = 2).
gp  Da das ursprüngliche Klasse-B-Netz einen 16 Bit (zwei Byte) langen Netzwerk-Teil besitzt, erfolgt die Unterteilung der vier Adressbereiche nach Bit 18, also nach dem zweiten Bit des dritten Bytes; die vier neuen Netze sind demnach 139.17.0.0/18, 139.17.64.0/18, 139.17.128.0/18 sowie 139.17.192.0/18.

Tabelle 13.5 zeigt die Eigenschaften der vier neuen Netze.


Tabelle 13.5   Subnetting - Unterteilung des Netzes 139.17.0.0/16 in vier gleich große Teilnetze

Netzwerk 1. Host-Adresse Letzte Host-Adresse Broadcast-Adresse Teilnetzmaske
139.17.0.0/18 139.17.0.1 139.17.63.254 139.17.63.255 255.255.192.0
139.17.64.0/18 139.17.64.1 139.17.127.254 139.17.127.255 255.255.192.0
139.17.128.0/18 139.17.128.1 139.17.191.254 139.17.191.255 255.255.192.0
139.17.192.0/18 139.17.192.1 139.17.255.254 139.17.255.255 255.255.192.0

Im zweiten Beispiel geht es um Supernetting, das heißt um die Zusammenfassung einzelner Netze zu einem größeren Gesamtnetz. Die Netze 203.16.0.0/24 bis 203.19.255.0/24 sollen zu einem einzigen Netz verbunden werden. Diese Aufgabe lässt sich auf folgende Weise lösen:

gp  Es werden 1.024 Klasse-C-Netze miteinander verbunden. 256 Netze der Klasse C würden einfach ein Gesamtnetz von der Größe eines Klasse-B-Netzwerks ergeben; beispielsweise ergäbe die Vereinigung der Netze 203.16.0.0/24 bis 203.16.255.0/24 das neue Netz 203.16.0.0/16. Um das gewünschte Netz der vierfachen Größe zu erhalten, muss die Grenze zwischen Netz- und Host-Teil um zwei Bit nach links verschoben werden.
gp  Die Adresse wird zwei Bit links von der Klasse-B-Grenze, also vor dem vorletzten Bit des zweiten Bytes, unterteilt. Daraus ergibt sich die Netzwerk-Adresse 203.16.0.0/14 mit der Teilnetzmaske 255.252.0.0.

IP-Adressraum-Umrechnung

Im Allgemeinen bietet es sich an, die Teilnetzmaske des ursprünglichen Netzes, das aufgeteilt oder mit mehreren verbunden werden soll, zunächst in die Binärdarstellung umzurechnen. In dieser Schreibweise fällt es am leichtesten, die Grenze zwischen Netz- und Host-Teil um die gewünschte Anzahl von Bits nach links oder nach rechts zu verschieben. Anschließend können Sie die Maske wieder in die vier üblichen 8-Bit-Gruppen unterteilen und in Dezimalzahlen umrechnen.

Diese Vorgehensweise soll im Folgenden an zwei neuen Beispielen demonstriert werden.

Das Klasse-B-Netzwerk 146.20.0.0/16 soll in acht Teilnetze unterteilt werden:

gp  Die ursprüngliche Netzmaske ist 255.255.0.0.
gp  In binärer Darstellung entspricht dies 11111111 11111111 00000000 00000000.
gp  Eine Aufteilung in acht Netze erfolgt durch eine Verschiebung der Grenze zwischen den beiden Adressteilen um drei Stellen (8 = 2) nach rechts.
gp  Die neue Netzmaske in binärer Schreibweise ist 11111111 11111111 11100000 00000000.
gp  Nach der erneuten Umrechnung in die dezimale Vierergruppen-Darstellung ergibt sich 255.255.224.0.
gp  Entsprechend ergeben sich die folgenden acht Netze:
146.20.0.0/19 146.20.32.0/19 146.20.64.0/19 146.20.96.0/19 146.20.128.0/19 146.20.160.0/19 146.20.192.0/19 146.20.224.0/19

Die vier Klasse-C-Netzwerke 190.16.0.0/24 bis 190.16.3.0/24 sollen zu einem gemeinsamen Netz verbunden werden:

gp  Die Teilnetzmaske der vier Netze lautet jeweils 255.255.255.0.
gp  Binär geschrieben ergibt sich daraus 11111111 11111111 11111111 00000000.
gp  Die Zusammenfassung von vier solchen Netzen erfordert eine Verschiebung der Adressgrenze um zwei Bit (4 = 2) nach links.
gp  In Binärdarstellung lautet die neue Maske 11111111 11111111 11111100 00000000.
gp  Wird diese Maske wieder in Dezimalschreibweise umgerechnet, dann resultiert daraus 255.255.252.0.
gp  Das neue Netz besitzt die CIDR-Adresse 190.16.0.0/22.

Die folgenden Tabellen zeigen in übersichtlicher Form, wie die Aufteilung der alten IP-Adressklassen in verschiedene Anzahlen von Teilnetzen funktioniert. In Tabelle 13.6 wird die Klasse A behandelt. Die - rein rechnerisch mögliche - Zusammenfassung mehrerer Klasse-A-Netze durch Supernetting wird in der Praxis nicht durchgeführt, weil erstens wohl niemand mehr als 16,7 Millionen Hosts in einem Teilnetz betreiben möchte, und zweitens alle Klasse-A-Netze an einzelne Betreiber vergeben wurden.


Tabelle 13.6   Bildung von CIDR-Teilnetzen aus einem Klasse-A-Netz

Netzwerk-Bits Host-Bits Anzahl Teilnetze Anzahl Hosts Teilnetzmaske
8 24 1 16.777.214 255.0.0.0
9 23 2 8.388.606 255.128.0.0
10 22 4 4.194.302 255.192.0.0
11 21 8 2.097.150 255.224.0.0
12 20 16 1.048.574 255.240.0.0
13 19 32 524.286 255.248.0.0
14 18 64 262.142 255.252.0.0
15 17 128 131.070 255.254.0.0
16 16 256 65.534 255.255.0.0
17 15 512 32.766 255.255.128.0
18 14 1.024 16.382 255.255.192.0
19 13 2.048 8.190 255.255.224.0
20 12 4.096 4.094 255.255.240.0
21 11 8.192 2.046 255.255.248.0
22 10 16.384 1.022 255.255.252.0
23 9 32.768 510 255.255.254.0
24 8 65.536 254 255.255.255.0
25 7 131.072 126 255.255.255.128
26 6 262.144 62 255.255.255.192
27 5 524.288 30 255.255.255.224
28 4 1.048.576 14 255.255.255.240
29 3 2.097.152 6 255.255.255.248
30 2 4.194.302 2 255.255.255.252

In Tabelle 13.7 wird die Aufteilung eines Klasse-B-Netzes in beliebig kleine Teilnetze gezeigt.


Tabelle 13.7   Bildung von CIDR-Teilnetzen aus einem Klasse-B-Netz

Netzwerk-Bits Host-Bits Anzahl Teilnetze Anzahl Hosts Teilnetzmaske
16 16 1 65.534 255.255.0.0
17 15 2 32.766 255.255.128.0
18 14 4 16.382 255.255.192.0
19 13 8 8.190 255.255.224.0
20 12 16 4.094 255.255.240.0
21 11 32 2.046 255.255.248.0
22 10 64 1.022 255.255.252.0
23 9 128 510 255.255.254.0
24 8 256 254 255.255.255.0
25 7 512 126 255.255.255.128
26 6 1.024 62 255.255.255.192
27 5 2.048 30 255.255.255.224
28 4 4.096 14 255.255.255.240
29 3 8.192 6 255.255.255.248
30 2 16.384 2 255.255.255.252

Die Tabelle 13.8 schließlich zeigt, wie die Unterteilung eines Klasse-C-Netzes erfolgt. In kleineren Unternehmen könnte es durchaus praktisch sein, ein solches - ohnehin kleines - Netzwerk weiter zu unterteilen.


Tabelle 13.8   Bildung von CIDR-Teilnetzen aus einem Klasse-C-Netz

Netzwerk-Bits Host-Bits Anzahl Teilnetze Anzahl Hosts Teilnetzmaske
24 8 1 254 255.255.255.0
25 7 2 126 255.255.255.128
26 6 4 62 255.255.255.192
27 5 8 30 255.255.255.224
28 4 16 14 255.255.255.240
29 3 32 6 255.255.255.248
30 2 64 2 255.255.255.252

In der Praxis ermöglicht CIDR bereits einen erheblich flexibleren Netzwerkaufbau als die Verwendung der alten Klassen. Doch auch diese Verfahrensweise kann immer noch ungünstige Ergebnisse zur Folge haben, wenn Teilnetze mit erheblich unterschiedlichen Größen benötigt werden: Das größte benötigte Teilnetz bestimmt die Größe aller anderen; selbst das kleinste belegt eine Menge von Adressen, die es womöglich niemals benötigen wird.

Aus diesem Grund wurde das VLSM-Konzept (Variable Length Subnet Mask) eingeführt. Es handelt sich um ein spezielles Subnetting-Verfahren, bei dem ein gegebenes Netz nicht mehr in gleich große, sondern in verschieden große Teilnetze unterteilt wird. Jedem dieser Teilnetze wird eine individuelle Teilnetzmaske zugewiesen.

VLSM-Funktionsweise

Das grundlegende Prinzip von VLSM besteht darin, vom kleinsten benötigten Teilnetz auszugehen und die entsprechenden größeren Netze aus Blöcken solcher kleinsten Teilnetze zu bilden, denen dann höhere Teilnetzmasken zugewiesen werden. Angenommen etwa, bei der Aufteilung eines Klasse-B-Netzes mit seinen 65.534 Host-Adressen besitzt das kleinste gewünschte Teilnetz 12 Hosts, das größte etwa 500. Für die 12 Hosts ist mindestens ein Netz mit der Teilnetzmaske 255.255.255.248 erforderlich, das 14 Host-Adressen bietet. Aus diesen kleinen Teilnetzen können dann entsprechend größere aufgebaut werden, wobei die Grenzen zwischen den Netzen der Logik der jeweiligen Netzmaske entsprechen müssen.

An dieser Stelle soll ein einfaches Beispiel genügen: Ein Unternehmen betreibt das öffentliche Klasse-C-Netz 196.17.41.0/24. Dieses Netz soll auf die drei Abteilungen der Firma aufgeteilt werden; die beiden Router und die drei Server sollen ein viertes separates Teilnetz bilden. Tabelle 13.9 zeigt die klassische Aufteilung des Netzes in vier gleich große Teile nach CIDR-Logik.


Tabelle 13.9   Aufteilung des Netzes 196.17.41.0/24 in vier Teile nach dem CIDR-Schema

Bereich Anzahl Hosts Teilnetz Maximale Hosts Freie Adressen
Server/Router 5 196.17.41.0/26 62 57
Verwaltung 20 196.17.41.64/26 62 42
Programmierung 61 196.17.41.128/26 62 1
Design 30 196.17.41.192/26 62 32

Es ist leicht zu erkennen, dass zwei der Teilnetze, Server/Router und Verwaltung, vollkommen überdimensioniert sind, während zumindest das Teilnetz der Programmierabteilung beinahe seine Belastungsgrenze erreicht hat. Stellen Sie sich vor, es werden noch zwei weitere Hosts in diese Abteilung aufgenommen: Schon wäre das Teilnetz zu klein, und es müsste über eine andere Verteilung nachgedacht werden. In diesem Beispiel könnte sie nur noch darin bestehen, zwei der anderen Bereiche zusammenzulegen, um den Programmiererbereich zu vergrößern.

Eine komplexere, aber für den konkreten Anwendungsfall sinnvollere Aufteilung des Netzes mit Hilfe der VLSM-Technik wird in Tabelle 13.10 gezeigt.


Tabelle 13.10   Flexible Aufteilung des Netzes 196.17.41.0/24 in vier Teile nach dem VLSM-Schema

Bereich Anzahl Hosts Teilnetz Maximale Hosts Freie Adressen
Server/Router 5 196.17.41.0/27 30 25
Verwaltung 20 196.17.41.32/27 30 10
Design 30 196.17.41.64/26 62 32
Programmierung 61 196.17.41.128/25 126 65

Für die IP-Konfiguration eines einzelnen Hosts macht es keinen Unterschied, ob das Teilnetz, in dem er sich befindet, nach der alten Klassenlogik, nach dem CIDR-Verfahren oder nach der VLSM-Methode konfiguriert wurde: In jedem Fall wird im Konfigurationsdialog des jeweiligen Betriebssystems die korrekte Teilnetzmaske eingestellt. Spezielle Unterstützung für VLSM benötigen lediglich die Router, die in dem betroffenen Netz eingesetzt werden. Die meisten neueren Routing-Protokolle bieten diese Unterstützung.

Die Übertragung von IP-Datagrammen

Auf der Vermittlungsschicht des TCP/IP-Protokollstapels, auf der das IP-Protokoll arbeitet, werden die Datenpakete als Datagramme bezeichnet. Um die Datenübertragung mit Hilfe des IP-Protokolls genau zu erläutern, soll an dieser Stelle zunächst der IP-Header vorgestellt werden. Er enthält die Steuerdaten, die das IP-Protokoll zu einem Datenpaket hinzufügt, das ihm vom übergeordneten Transportprotokoll übergeben wird.

Der IPv4-Protokoll-Header wird - wie das gesamte Protokoll - in RFC 791 definiert. Seine Länge beträgt mindestens 20 Byte, dazu können bis zu 40 Byte Optionen kommen. Tabelle 13.11 zeigt den genauen Aufbau.


Tabelle 13.11   Aufbau des IPv4-Datagramm-Headers

Byte 0 1 2 3
0 Version IHL Type of Service Paket-Gesamtlänge
4 Identifikation Flags Fragment-Offset
8 Time to Live Protokoll Header-Prüfsumme
12 Quell-Adresse
16 Ziel-Adresse
20 Optionen Padding
... evtl. weitere Optionen

Die einzelnen Daten des IP-Headers sind folgende:

gp  Version (4 Bit): die Versionsnummer des IP-Protokolls, die das Paket verwendet. Bei IPv4, wie der Name schon sagt, die Version 4.
gp  IHL (4 Bit): Internet Header Length; die Länge des Internet-Headers in 32-Bit-Worten (Zeilen in der Tabelle oben). Der kleinste mögliche Wert beträgt 5.
gp  Type of Service (8 Bit): ein Code, der die Art des Datenpakets bestimmt. Bestimmte Sorten von Paketen, etwa für den Austausch von Routing- oder Status-Informationen, werden von bestimmten Netzen bevorzugt weitergeleitet. In ihrem 1999er Aprilscherz bot die Computerzeitschrift c't ein angebliches Tool zum Download an, das diese Quality-of-Service-Informationen manipulieren könne, um die Geschwindigkeit von Internet-Verbindungen zu erhöhen.
gp  Paket-Gesamtlänge (16 Bit): die Gesamtlänge des Datagramms in Bytes, Header und Nutzdaten.
gp  Identifikation (16 Bit): ein durch den Absender frei definierbarer Identifikationswert, der beispielsweise das Zusammensetzen fragmentierter Datagramme ermöglicht.
gp  Flags (3 Bit): Kontrollflags, die die Paketfragmentierung regeln. Das erste Bit ist reserviert und muss immer 0 sein, das zweite (DF) bestimmt, ob das Paket fragmentiert werden darf (Wert 1) oder nicht (0), das dritte (MF) regelt, ob dieses Paket das letzte Fragment (0) ist oder ob weitere Fragmente folgen (1).
gp  Fragment-Offset (13 Bit): Dieser Wert (angegeben in 64-Bit-Blöcken) legt fest, an welcher Stelle in einem Gesamtpaket dieses Paket steht, falls es sich um ein Fragment handelt. Das erste Fragment oder ein nicht fragmentiertes Paket erhält den Wert 0.
gp  Time to Live (8 Bit): Der TTL-Mechanismus sorgt dafür, dass Datagramme nicht endlos im Internet weitergeleitet werden, falls die Empfängerstation nicht gefunden wird. Jeder Router, der ein Datagramm weiterleitet, zieht von diesem Wert 1 ab; wird der Wert 0 erreicht, dann leitet der betreffende Router das Paket nicht weiter, sondern verwirft es.
gp  Protokoll (8 Bit): Die hier gespeicherte Nummer bestimmt, für welches Transportprotokoll der Inhalt des Datagramms bestimmt ist. Die beiden wichtigsten Transportprotokolle, TCP und UDP, werden im nächsten Abschnitt beschrieben.
gp  Header-Prüfsumme (16 Bit): Die Prüfsumme stellt eine einfache Plausibilitätskontrolle für den Datagramm-Header zur Verfügung. Ein Paket, dessen Header-Prüfsumme nicht korrekt ist, wird nicht akzeptiert und muss erneut versendet werden.
gp  Quelladresse und Zieladresse (je 32 Bit): die IP-Adressen von Absender und Empfänger. IP-Adressen wurden oben ausführlich behandelt.
gp  Optionen (variable Länge): Die meisten IP-Datagramme werden ohne zusätzliche Optionen versandt, da Absender- und Empfänger-Host sowie alle auf dem Weg befindlichen Router die jeweils verwendeten Optionen unterstützen müssen. Zu den verfügbaren Optionen gehören unter anderem Sicherheitsfeatures und spezielle Streaming-Funktionen.

Paket-Fragmentierung

Das Problem der Paket-Fragmentierung entsteht dadurch, dass verschiedene physikalische Netzarten unterschiedliche Maximallängen für Datenpakete erlauben. Dieser Wert, der als Maximum Transmission Unit (MTU) bezeichnet wird, kann bei einigen Netzwerkschnittstellen per Software konfiguriert werden, bei anderen ist er vom Hersteller vorgegeben. Werden nun Datagramme aus einem Netz mit einer bestimmten MTU in ein anderes Netz mit einer kleineren MTU weitergeleitet, dann müssen die Daten in kleinere Pakete »umgepackt« werden. Wie oben beschrieben, werden sie dazu mit Fragmentierungsinformationen versehen, damit sie später wieder richtig zusammengesetzt werden können.

Solange Quell- und Zieladresse im gleichen Netzwerk liegen, ist die Übertragung der Datagramme sehr einfach: Je nach Netzwerkart wird auf die passende Art und Weise (bei Ethernet zum Beispiel über ARP) die Schnittstelle ermittelt, für die die Daten bestimmt sind. Anschließend wird das Datagramm an den korrekten Empfänger übermittelt. Dieser liest den IP-Header des Pakets, setzt eventuelle Fragmente wieder richtig zusammen und übermittelt das Paket an das Transportprotokoll, dessen Nummer im Header angegeben ist. Wie der Transportdienst mit den Daten umgeht, erfahren Sie im nächsten Abschnitt.

IP-Routing

Komplizierter, aber auch interessanter wird es, wenn die Daten nicht für einen Host im lokalen Netz bestimmt sind, sondern für ein anderes Netzwerk. In diesem Fall muss das Paket an einen Router übergeben werden, der es weiterleitet. Die meisten Daten, die im Internet übertragen werden, passieren eine Vielzahl solcher Router, bis sie letztendlich ihr Ziel erreichen. Um das Konzept des IP-Routings verstehen zu können, müssen Sie verschiedene Aspekte betrachten. Insbesondere ist die Frage von Bedeutung, auf welche Art und Weise überhaupt das korrekte Empfängernetzwerk gefunden wird.

Default Gateway und »normale« Router

Bei einem einzelnen Host können üblicherweise zwei verschiedene Arten von Routern angegeben werden: zum einen die Router, die Daten in ein bestimmtes Fremdnetzwerk weiterleiten, und zum anderen der Standard-Router (meist als »Default Gateway« bezeichnet), der alle Daten entgegennimmt, die weder für das lokale Netz noch für ein Netz mit einem speziellen Router bestimmt sind.

Bei einem privaten PC, der über eine Wählleitung mit dem Internet verbunden ist, besteht in der Regel nur eine Verbindung zu einem einzelnen Router. Welcher das ist, wird jedoch bei der Einwahl in das Netzwerk des Providers bestimmt, da auch die IP-Adresse bei jeder Einwahl dynamisch zugeteilt wird. Je nachdem, welche Adresse dem Host zugeteilt wird, ist möglicherweise ein anderer Router zuständig. Deshalb wird der Router bei der IP-Konfiguration des DFÜ-Netzwerkzugangs nicht fest angegeben, sondern durch das Einwahlprotokoll (üblicherweise PPP) mitgeteilt.

Anders sieht es dagegen oft bei Workstations in Unternehmen aus, die an ein lokales Netzwerk angeschlossen sind: Sämtliche Netzwerkkommunikation, sowohl mit dem lokalen Netz als auch mit dem Internet, findet über ein und dieselbe LAN-Schnittstelle statt, meistens über Ethernet. Innerhalb des LAN besitzt der Router für die Verknüpfung zum Internet eine bekannte IP-Adresse, die bei der IP-Konfiguration des Hosts angegeben wird. Mitunter besteht die Netzwerkinfrastruktur eines größeren Unternehmens auch aus mehreren Einzelnetzen, die über interne Router miteinander vernetzt werden. In einem solchen Fall wird häufig der Router, der zu dem anderen lokalen Netz führt, als Router für dieses konkrete Netz angegeben, während der Internet-Router (dessen Zielnetz »alle anderen Netze« sind) als Standard-Router eingerichtet wird. Für diesen letzteren - Routing-technisch relativ interessanten - Fall sehen Sie hier ein Beispiel:

Routing-Beispiel

In einem Unternehmen bestehen die beiden lokalen Netze 196.87.98.0/24 und 196.87.99.0/24. Das erste Netz wird von der Grafikabteilung verwendet, das zweite von den Softwareentwicklern. In Abbildung 13.2 wird der Aufbau dieses Netzes dargestellt.

Das Netzwerk der Grafikabteilung enthält die folgenden drei Rechner:

gp  zeus (196.87.98.3)
gp  aphrodite (196.87.98.4)
gp  hermes (196.87.98.5)

Zum Netzwerk der Entwicklungsabteilung gehören die drei folgenden Hosts:

gp  newton (196.87.99.7)
gp  curie (196.87.99.8)
gp  einstein (196.87.99.9)

Abbildung 13.2   Verbindung zwischen zwei verschiedenen lokalen Netzen und dem Internet über zwei Router

Abbildung
Hier klicken, um das Bild zu Vergrößern


Zwischen den beiden lokalen Netzen befindet sich ein Router, dessen Schnittstelle im Netz der Grafikabteilung die IP-Adresse 196.87.98.1 besitzt. Seiner anderen Schnittstelle für die Entwicklungsabteilung wurde die Adresse 196.87.99.2 zugewiesen. Ein zweiter Router verbindet die Entwicklungsabteilung mit dem Internet. Seine lokale Schnittstelle wurde mit der IP-Adresse 196.87.99.1 konfiguriert; die Adresse für die Internet-Schnittstelle wird vom Internetprovider dynamisch zugewiesen.

Interessant ist nun die Routing-Konfiguration der einzelnen Hosts. Die drei Rechner im Entwickler-Netzwerk kennen zwei verschiedene Router: Der Standard-Router ist 196.87.99.1, als spezieller Router für Datenpakete an das Netz 196.87.98.0 wird 196.87.99.2 angegeben. Dagegen kennen die drei Hosts im Grafik-Netzwerk nur einen einzigen Router, nämlich 196.87.98.1, der als Standard-Router eingerichtet wird. Ob Datenpakete jenseits dieses Routers für das Netz 196.87.99.0 oder für das Internet bestimmt sind, muss der Router selbst entscheiden; die Rechner schicken ihm einfach alle Datagramme, die nicht für das lokale Netz bestimmt sind.

Angenommen »aphrodite« möchte auf Daten zugreifen, die »newton« bereitstellt. Die Daten sind offensichtlich nicht für das Netz 196.87.98.0 bestimmt, deshalb werden sie dem Router übergeben. Dieser erkennt, dass sie für das Netz 196.87.99.0 bestimmt sind, an das er unmittelbar angeschlossen ist. Er kann die Daten direkt an den Ziel-Host ausliefern.

Will dagegen »zeus« auf Daten aus dem Internet zugreifen, beispielsweise auf die Website http://www.heise.de, dann muss der Standard-Router des Grafik-Netzes erkennen, dass die Daten nicht für das andere Netz bestimmt sind, an das er selbst angeschlossen ist, und sie an den nächsten Router weiterreichen.

Ein wenig anders verhält es sich, wenn ein Rechner aus dem Entwickler-Netz wie »curie« auf »zeus« zugreifen möchte. Es ist bereits in der Routing-Konfiguration von »curie« bekannt, dass ein bestimmter Router, nämlich 196.87.99.2, zu verwenden ist. Ebenso weiß beispielsweise »einstein«, dass Zugriffe auf das Internet über den Router 196.87.99.1 erfolgen müssen.

Routing-Tabellen

Damit ein Host weiß, wohin er Datenpakete eigentlich schicken muss, um ein bestimmtes Netz zu erreichen, müssen die einzelnen Router in seiner Netzwerkkonfiguration angegeben werden - dies funktioniert je nach Betriebssystem unterschiedlich; die konkrete Vorgehensweise wird im nächsten Kapitel beschrieben. Das Ergebnis dieser Konfiguration ist eine Routing-Tabelle, die ebenfalls je nach System unterschiedlich aussieht. Angenommen, alle Rechner im oben gezeigten Beispielnetzwerk liefen unter UNIX (die Grafik-Rechner unter Mac  OS X, die Entwickler-Computer unter Linux). Dann sähe die Routing-Tabelle von »curie«, die durch den UNIX-Befehl netstat -rn angezeigt werden kann, so aus:

$ netstat -rn
Routing Tables
Destination    Gateway       Flags  Refcnt  Use    Interface
127.0.0.1      127.0.0.1     UH     1       132    lo0
196.87.99.0    196.87.99.8   U      26      49041  le0
196.87.98.0    196.87.99.2   UG     0       0      le0
default        196.87.99.1   UG     0       0      le0

Die erste Zeile (Zieladresse 127.0.0.1) beschreibt das Erreichen der Loopback-Adresse: Das Interface (Netzwerkschnittstelle) ist »lo0« (local loopback). Das Flag »H« zeigt an, dass es sich um eine Route zum Erreichen eines einzelnen Hosts handelt. Das Flag »U« dagegen steht für »Up« und bedeutet, dass die Route zurzeit intakt ist.

In der nächsten Zeile wird das lokale Netzwerk angegeben, in dem sich »curie« selbst befindet. Deshalb wird als Gateway einfach die IP-Adresse von »curie« angegeben. Das Interface »le0« ist die erste (und in diesem Fall einzige) Ethernet-Schnittstelle des Rechners.

Die dritte Zeile beschreibt die Route in das Grafik-Netzwerk über den Router, dessen Adresse im Entwickler-Netz 196.87.99.2 lautet. Das Flag »G« steht für Gateway, also für die Tatsache, dass für diese Route die Dienste eines Routers in Anspruch genommen werden.

In der letzten Zeile wird schließlich 196.87.99.1 als Default-Gateway angegeben, das heißt als Router für alle Ziele, die nicht explizit in der Routing-Tabelle auftauchen.

Die Routing-Tabelle von »hermes« sieht einfacher aus:

Routing Tables
Destination    Gateway       Flags  Refcnt  Use    Interface
127.0.0.1      127.0.0.1     UH     1       132    lo0
196.87.98.0    196.87.98.5   U      26      49041  le0
default        196.87.98.1   UG     0       0      le0

Da das Grafik-Netz nur einen Router kennt, gibt es nur den Loopback-Eintrag, die Information für das lokale Netz und schließlich den Default-Eintrag für alle anderen Netze.

Lebensdauer von
IP-Datagrammen

Auf diese Weise werden Daten durch das gesamte Internet geroutet. Jedes Mal, wenn ein Router passiert wird, erfolgt ein so genannter »Hop« der Daten. Wegen des TTL-Felds von 8 Bit Größe, das im IP-Header enthalten ist und weiter oben beschrieben wurde, erreicht ein Datagramm sein Ziel stets mit höchstens 255 Hops - oder eben gar nicht.

Damit IP-Datenpakete ihr Ziel überhaupt erreichen können, muss im Prinzip jeder einzelne Router im gesamten Internet darüber Bescheid wissen, wie er jedes beliebige Netz erreichen kann. Zu diesem Zweck unterhält auch jeder Router Routing-Tabellen, die den oben für die einzelnen Hosts gezeigten ähnlich sehen. Da das Internet ein Zusammenschluss aus vielen einzelnen Netzwerken ist, müssen diese Tabellen jedoch ständig aktualisiert werden, denn es ergeben sich häufig Konfigurationsänderungen, weil neue Netze hinzukommen oder vorhandene geändert oder aufgegeben werden. Es wäre absolut unzumutbar, diese Konfigurationsänderungen ständig manuell auf dem aktuellen Stand zu halten, was deshalb auch seit vielen Jahren nicht mehr üblich ist (außer innerhalb sehr kleiner Netze wie in dem Beispiel oben, in denen sich die Routing-Einstellungen selten ändern müssen).

Routing-Protokolle

Die Router im Internet müssen deshalb ständig Informationen darüber austauschen, an welche anderen Netzwerke sie jeweils Daten vermitteln. Es wurden eine Reihe verschiedener Routing-Protokolle entwickelt, mit deren Hilfe dies bewerkstelligt wird. Jedes dieser Routing-Protokolle besitzt andere Eigenschaften, außerdem wird nicht jedes dieser Protokolle von jedem Hersteller unterstützt.

Zunächst muss zwischen zwei verschiedenen Arten von Routing unterschieden werden: dem Routing innerhalb zusammenhängender Netze eines einzelnen Betreibers (Interior Routing), der innerhalb dieses Bereiches frei über die Konfiguration entscheiden kann, und dem Routing zwischen voneinander unabhängigen derartigen Bereichen (Exterior Routing). Alle zusammenhängenden Netze eines Betreibers werden als autonome Systeme (autonomous systems, abgekürzt AS) bezeichnet. Einige Routing-Protokolle, etwa das veraltete RIP oder das aktuellere OSPF, dienen dem Routing innerhalb von autonomen Systemen, während andere, vor allem BGP, für das Routing zwischen den Grenzen autonomer Systeme zuständig sind. Diese drei genannten Routing-Protokolle werden weiter unten kurz vorgestellt.

Wenn ein Router ein Routing-Protokoll ausführt, dann teilt er den benachbarten Routern mit, an welche Netze er Daten weiterleitet. Die meisten Routing-Protokolle machen außerdem Angaben über die »Kosten«, die für das Erreichen eines bestimmten Netzes kalkuliert werden müssen. Der Begriff »Kosten« hat nichts mit dem Preis zu tun, sondern bestimmt vor allem, über wie viele Hops ein bestimmtes Netzwerk durch den jeweiligen Router erreicht werden kann. Allerdings gibt es auch die Möglichkeit, die Kostenangaben willkürlich zu manipulieren - je nachdem, wie »gern« ein Router Daten an ein bestimmtes Netzwerk übermittelt. Wenn ein Router bestimmen muss, an welchen benachbarten Router er die Daten für ein bestimmtes Netz übergeben soll, sucht er sich denjenigen aus, der für dieses Netz geringere Kosten angibt. Diese Kostendaten werden auch als die Metrik des Routings bezeichnet.

Auf diese Weise wird versucht, die Datenströme zwischen den verschiedenen Backbone-Netzwerken möglichst gleichmäßig zu verteilen, außerdem bestehen verschiedene Arten von Verträgen oder Vereinbarungen zwischen den Netzbetreibern, was die Weiterleitung von Daten bestimmter anderer Netzwerke betrifft. Beispielsweise bestand in Deutschland in den 90er-Jahren ein mehrjähriger Streit zwischen dem Deutschen Forschungsnetz (DFN), dem Betreiber der deutschen Universitätsnetze, und den kommerziellen Internetprovidern. Es ging um die Frage, wer wem mehr Datenverkehr aus dem jeweils anderen Netz zumutete. Erst durch die Einführung neuer zentraler Datenaustauschpunkte wie dem DE-CIX konnte der Konflikt beigelegt werden.

gp  Routing Information Protocol (RIP)
Das Routing Information Protocol wird auf UNIX-Routern durch den Routing Daemon (»routed«) ausgeführt. Beim Start von »routed« wird eine Anfrage ausgesendet. Alle anderen Router, die innerhalb desselben autonomen Systems ebenfalls »routed« ausführen, beantworten diese Anfrage durch Update-Pakete. Darin sind die Zieladressen aus den Routing-Tabellen der anderen Router und deren jeweilige Metrik enthalten.
    Enthält ein Update-Paket die Routen zu Netzen, die noch gar nicht bekannt sind, dann fügt der Router sie zu seiner Routing-Tabelle hinzu. Außerdem werden Routen ersetzt, falls ein Update-Paket die Information enthält, dass ein bestimmtes Netzwerk über einen anderen Router mit geringeren Kosten zu erreichen ist.
       
    Ein Router, auf dem »routed« läuft, sendet ebenfalls Update-Pakete, und zwar in der Regel alle 30 Sekunden. Erhält ein Router von einem anderen mehrere Male keine Update-Pakete mehr (häufig beträgt die Wartezeit 180 Sekunden), dann löscht er alle Einträge aus seiner Routing-Tabelle, die diesen Router verwenden. Außerdem werden diejenigen Einträge gelöscht, deren Kosten mehr als 15 Hops betragen. Letzteres beschränkt RIP auf kleinere autonome Systeme.
       
    RIP interpretiert IP-Adressen streng nach der alten Klassen-Logik und beherrscht weder CIDR noch VLSM. Dies ist der Hauptgrund, warum es immer seltener verwendet wird.
       
    Außerdem besteht das Problem, dass durch den plötzlichen Ausfall von Routern Konfigurationsfehler entstehen können: Alle Netze, die ursprünglich nur durch den ausgefallenen Router erreicht werden konnten, können nun gar nicht mehr erreicht werden. Dies spricht sich jedoch nur allmählich herum, da ein Router zwar zunächst alle Routen entfernt, die durch den ausgefallenen Router führten, von den anderen jedoch wieder die Route zu dem Netz lernt, das nun nicht mehr erreichbar ist. Bei einem Update-Intervall von 30 Sekunden kann es recht lange dauern, bis die Router die Entfernung zu dem nicht mehr verfügbaren Netz auf die nicht mehr relevanten 16 Hops »hochgeschaukelt« haben.
       
    Um dieses Szenario zu verhindern, wird eine Technik namens Split Horizon verwendet: Ein Router bietet Routing-Informationen nicht über die Verbindung an, über die er sie gelernt hat. Eine Erweiterung dieses Verfahrens ist Poison Reverse; hier wird den Routern, von denen eine bestimmte Verbindung gelernt wurde, aktiv die »Unendlich-Metrik« 16 angegeben.
       
    Einige Probleme von RIP werden in der neueren Version RIP-2, die in RFC 1723 beschrieben wird, beseitigt; vor allem arbeitet diese Version mit CIDR-Adressierung.
       
gp  Open Shortest Path First (OSPF)
Das in RFC 2178 beschriebene Open Shortest Path First-Protokoll ist ein so genanntes Link-State-Protokoll: Der einzelne Router speichert einen gerichteten Graphen des Netzwerks aus seiner jeweiligen Sicht. Ein gerichteter Graph ist eine Art Baumdiagramm mit dem lokalen Router als Wurzel; sein Aufbau geschieht nach dem Shortest-Path-First-Algorithmus von Dijkstra: Die Kosten des lokalen Routers selbst werden mit 0 angegeben; von diesem zweigen die Routen zu den Nachbarn baumförmig ab, dann wiederum zu deren Nachbarn und so weiter. In einem zweiten Schritt wird der Link-State-Graph optimiert. Falls mehrere Routen zu einem Ziel bestehen, beispielsweise eine direkte und eine indirekte, wird jeweils die weniger kostengünstige Route entfernt.
    Um die Link-State-Datenbank klein zu halten, werden größere autonome Systeme in kleinere Einheiten unterteilt, die Areas. Nur vereinzelte Router, die so genannten Bereichsgrenzrouter, werden von den Routern innerhalb einer Area als Verbindung in andere Areas betrachtet.
       
    Ein OSPF-Router gewinnt seine Erkenntnisse über die benachbarten Router, indem er so genannte Hello-Pakete aussendet. Diese enthalten seine eigene Adresse und die Information, von welchen benachbarten Routern er bereits Routing-Daten erhalten hat. Ein Router, der ein Hello-Paket erhält, trägt den Absender dieses Pakets als Nachbarn in seinen eigenen Link-State-Graphen ein. Die Hello-Pakete werden in regelmäßigen Abständen ausgesandt, um den Nachbarn mitzuteilen, dass der Router noch bereit ist. Erhält ein Router keine weiteren Pakete von einem bestimmten Nachbarn, geht er davon aus, dass dieser nicht mehr zur Verfügung steht, entfernt ihn aus seiner Link-State-Datenbank und informiert das Netzwerk darüber.
       
    OSPF-Router geben Daten über ihre Nachbarn an das gesamte Netzwerk weiter, indem sie Link State Advertisements (LSA) über alle ihre Netzwerkschnittstellen versenden. Der Empfänger eines LSA-Pakets leitet es weiter, indem er es ebenfalls über alle seine Schnittstellen versendet - mit Ausnahme derjenigen, über die er es empfangen hat. Dieses Verfahren der schnellen Verbreitung von Informationen über ein Netzwerk wird als Flooding bezeichnet.
       
gp  Border Gateway Protocol (BGP)
Anders als bei den beiden oben behandelten Routing-Protokollen handelt es sich beim Border Gateway Protocol um ein externes Routing-Protokoll, das Verbindungen zwischen verschiedenen autonomen Systemen regelt. Vom Standpunkt des externen Routings aus erscheinen die autonomen Systeme selbst als in sich geschlossene Gebilde, die nicht näher differenziert werden. BGP wird nur von den Bereichsgrenzroutern der autonomen Systeme ausgeführt, also in der Regel lediglich bei Internetprovidern oder großen Backbone-Netzbetreibern. Die meisten Firmennetze sind dagegen Teil eines autonomen Systems, das von einem Provider betrieben wird, führen also lediglich interne Routing-Protokolle wie OSPF aus.
    Die benachbarten BGP-Router, Peers genannt, kommunizieren über eine zuverlässige TCP-Verbindung, die über den dafür vorgesehenen TCP-Port 179 abgewickelt wird. Es wird stets eine vollständige Route mit allen ihren Knotenpunkten angegeben. Dies unterscheidet BGP von den meisten internen Routing-Protokollen, die nur die Verbindungen zu ihren unmittelbaren Nachbarn angeben. Aus diesem Grund wird BGP als Pfadvektor-Protokoll bezeichnet.
       
    Wird das erste Mal eine Verbindung zu einem Peer hergestellt, dann werden über so genannte UPDATE-Pakete die vollständigen Routing-Tabellen ausgetauscht, danach werden nur noch Änderungen mitgeteilt. Außerdem werden in regelmäßigen Abständen KEEPALIVE-Pakete versandt, falls keine Änderungen vorliegen, um den Peers mitzuteilen, dass der Router noch einsatzbereit ist.
       

Weitere IP-Dienste

In fast allen modernen TCP/IP-Netzwerken - insbesondere in lokalen Firmennetzen, die mit dem Internet verbunden sind - spielen zwei weitere Protokolle eine wichtige Rolle: Das DHCP dient dazu, den Rechnern im Netzwerk automatisch IP-Adressen zuzuweisen, während das NAT-Protokoll meist vom Standard-Router ausgeführt wird und die im Internet unbrauchbaren privaten IP-Adressen mit öffentlichen überschreibt und umgekehrt. Diese beiden Protokolle sollen hier näher vorgestellt werden.

DHCP

Das in den RFCs 2131 und 2132 definierte Dynamic Host Configuration Protocol (DHCP) dient dazu, einem Host automatisch TCP/IP-Konfigurationsdaten zuzuweisen. Es ist eine Erweiterung des älteren Bootstrap Protocol (BOOTP). Ein Host, der seine Netzwerkparameter über DHCP beziehen möchte, sendet bei Inbetriebnahme eine Broadcast-Anfrage namens BOOTREQUEST an die allgemeine Broadcast-Adresse 255.255.255.255. Der Rechner muss also noch nicht einmal wissen, in welchem Netzwerk er sich befindet - das ist beispielsweise ideal für ein Notebook, das manchmal an ein Heim- und manchmal an ein Büro-Netzwerk angeschlossen wird. Läuft in dem Netz ein DHCP-Server, dann antwortet er mit einem Satz von Konfigurationsparametern, mit denen der Host seine TCP/IP-Konfiguration durchführt.

Das wichtigste Merkmal von DHCP besteht in der dynamischen Vergabe von IP-Adressen, die Netzwerkadministratoren das Leben erheblich erleichtert, insbesondere in solchen Netzwerken, in denen häufig Änderungen auftreten. Diese automatische Vergabe erfolgt in Form einer »Lease« (Pacht) mit beschränkter Gültigkeit. Ein Host, der ordnungsgemäß vom Netz abgemeldet wird (ein normaler Vorgang beim Herunterfahren moderner Betriebssysteme), gibt seine IP-Adresse selbst an den DHCP-Server zurück. Das Lease-Verfahren sorgt dagegen dafür, dass IP-Adressen auch dann wieder für den Server verfügbar werden, wenn ein Host unerwartet vom Netz getrennt oder unsachgemäß abgeschaltet wird. Bleibt ein Rechner über den Lease-Zeitraum hinaus im Netz aktiv, dann erfolgt in der Regel eine Verlängerung der Lease.

Auf dem DHCP-Server muss ein Teil der Adressen des Netzwerks, in dem er sich befindet, als DHCP-Pool konfiguriert werden, aus dem die Adressen automatisch an die anfragenden DHCP-Clients vergeben werden. Es muss darauf geachtet werden, genügend Adressen aus diesem Pool auszuschließen, weil eine Reihe von Internetdiensten eine feste IP-Adresse benötigt oder zumindest besser damit funktioniert.

NAT

Network Address Translation (NAT) ist eine relativ neue Entwicklung und löst dementsprechend ein modernes Problem: Immer mehr Netzwerke benötigen permanenten oder auch nur temporären Zugang zum Internet, obwohl sie mit den weiter oben vorgestellten privaten IP-Adressen konfiguriert wurden. Es wäre bei der heutigen Anzahl von Internet-Hosts und angeschlossenen Netzen auch gar nicht mehr möglich, allen angeschlossenen Netzwerken öffentliche IP-Adressen zuzuweisen. Da die privaten IP-Adressen jedoch nicht eindeutig sind, müssen sie beim Übergang ins Internet mit einer öffentlichen Adresse überschrieben werden und umgekehrt.

Eine aktuelle Form von NAT, die im Kernel moderner UNIX-Systeme konfiguriert werden kann, wird auch als IP-Masquerading bezeichnet und geht noch einen Schritt weiter als NAT allgemein: Es ist nur eine externe IP-Adresse erforderlich; alle lokalen Adressen werden auf diese eine Adresse abgebildet. Unterschieden werden die Rechner in diesem Fall anhand der Client-Portnummer der Datenpakete, die zur Transportebene gehört und in Abschnitt 17.3.2 näher beschrieben wird. Aus diesem Grund wird das echte Masquerading manchmal auch als PAT (Port Address Translation) bezeichnet. Diese spezielle Form von NAT verbirgt die Details des internen Netzwerks vor dem Internet, die einzelnen Rechner sind von außen nicht erreichbar. Dies ist ein angenehmer Nebeneffekt dieses Verfahrens, der zusätzlich der Sicherheit im Netzwerk dient.

Tabelle 13.12 zeigt ein Beispiel für klassisches NAT in einem privaten Netzwerk mit der Adresse 192.168.1.0/24. Jede interne IP-Adresse wird auf eine individuelle externe Adresse abgebildet.


Tabelle 13.12   Beispiel für klassisches NAT

Hostname Interne IP-Adresse Externe IP-Adresse
gandalf 192.168.1.4 204.81.92.6
frodo 192.168.1.5 204.81.92.3
bilbo 192.168.1.6 204.81.92.5

In Tabelle 13.13 wird dagegen für dasselbe Netzwerk ein Beispiel für IP-Masquerading (PAT) gezeigt. Das Konzept der Portnummern wird weiter unten genauer beschrieben.


Tabelle 13.13   Beispiel für IP-Masquerading

Hostname Interne IP-Adresse Externe IP-Adresse Externe Portnummer
gandalf 192.168.1.4 204.81.92.4 22.191
frodo 192.168.1.5 22.192
bilbo 192.168.1.6 22.193

Der Rechner, der NAT ausführt, ist üblicherweise der Router, der das lokale Netz mit dem Netzwerk eines Providers und demzufolge mit dem Internet verbindet. NAT wird von allen gängigen UNIX-Versionen sowie von Windows NT und seinen Nachfolgern unterstützt. Außerdem können die meisten ISDN- oder DSL-Kompakt-Router NAT ausführen. Eine nähere Beschreibung vieler Aspekte von NAT befindet sich in RFC 3022.

IPv6

Bereits vor zehn Jahren wurde damit gerechnet, dass sehr bald keine weiteren IPv4-Adressen mehr verfügbar sein würden. Dass dies bisher noch immer nicht der Fall ist, liegt an der Einführung von CIDR, VLSM und NAT. Da das Internet aber weiterhin wächst, ist es nur noch eine Frage der Zeit, bis die Anzahl der Adressen endgültig erschöpft ist.

IPv6-Motivation

Deshalb wurde schon vor einigen Jahren mit der Arbeit an einem Nachfolger für das IPv4-Protokoll gearbeitet, das vor allem einen größeren Adressraum durch längere IP-Adressen besitzen sollte. Letzten Endes entschieden die Entwickler sich für Adressen von 128 Bit Länge. Dies ergibt theoretisch mehr als 3,4 * 1038  verschiedene Adressen! Damit erscheint der Adressraum mehr als überdimensioniert; offensichtlich kann man damit jedem einzelnen Sandkorn auf unserem Planeten mehrere eigene IP-Adressen zuweisen. Letzten Endes geht es allerdings eher darum, beinahe beliebig viele Netze von sehr unterschiedlicher Größe einrichten zu können, und abgesehen davon werden immer mehr tragbare, spezialisierte Geräte entwickelt, die mit Netzwerken verbunden werden - etwa dynamisch über öffentliche WLAN-Access-Points.

Die aktuelle Version des neuen IP-Protokolls wird in RFC 2460 beschrieben. Da die Version 5 für Experimente mit Multicasting verwendet wurde, lautet die Versionsnummer des Protokolls IPv6; während seiner Entwicklung wurde es auch manchmal als IPng (für »next generation«) bezeichnet, zum Beispiel in RFC 1752, das den ersten Arbeitsentwurf beschreibt. Die IPv6-Adresse wird nicht in 8-Bit-Dezimalgruppen geschrieben wie bei IPv4; mit 16 Gruppen wäre sie ein wenig unhandlich. Stattdessen schreibt man 8 vierstellige Hexadezimalgruppen, die durch Doppelpunkte getrennt werden. Eine IPv6-Adresse sieht zum Beispiel folgendermaßen aus: 4A29:30B4:0031: 0000:0000:0092:1A3B:3394. Eine zulässige Verkürzung besteht darin, führende Nullen in einem Block wegzulassen sowie Blöcke, die nur aus Nullen bestehen, durch zwei aufeinander folgende Doppelpunkte zu ersetzen. Kurz gefasst lautet die Beispieladresse also 4A29:30B4:31::92:1A3B:3394. Um die Adresse eindeutig zu halten, darf diese Verkürzung innerhalb einer Adresse nur einmal durchgeführt werden.

Aufbau von IPv6-Adressen

Genau wie IPv4-Adressen werden auch die neuen IPv6-Adressen in zwei Teile unterteilt: Links steht ein Präfix, dahinter ein Individualteil, der dem Host-Teil der IPv4-Adresse entspricht. Das Präfix gibt allerdings nicht das einzelne Netz an, zu dem die Adresse gehört, sondern informiert über den Adresstyp. Da die Präfixe wie bei IPv4 unterschiedliche Längen aufweisen können, wird das Präfix zusammen mit seiner Bit-Anzahl angegeben. Tabelle 13.14 gibt einen Überblick über die verschiedenen Adressblöcke und ihre Verwendung.


Tabelle 13.14   IPv6-Adressbereiche und -Präfixe

Präfix Verwendung
0::0/8 reserviert für spezielle Anwendungen
100::0/8 noch nicht zugeordnet
200::0/7 Abbildung von NSAP-Adressen
400::0/7 Abbildung von IPX-Adressen
600::0/7 noch nicht zugeordnet
800::0/5 noch nicht zugeordnet
1000::0/4 noch nicht zugeordnet
2000::0/3 global eindeutige Adressen
6000::0/3 noch nicht zugeordnet
8000::0/3 noch nicht zugeordnet
A000::0/3 noch nicht zugeordnet
C000::0/3 noch nicht zugeordnet
E000::0/4 noch nicht zugeordnet
F000::0/5 noch nicht zugeordnet
F800::0/6 noch nicht zugeordnet
FE00::0/7 noch nicht zugeordnet
FE00::0/9 noch nicht zugeordnet
FE80::0/10 auf eine Verbindung begrenzte Adressen
FEC0::0/10 auf eine Einrichtung begrenzte Adressen
FF00::0/8 Multicast-Adressen

Die typischste Form von IPv6-Adressen, deren Stil am ehesten den öffentlich gerouteten IPv4-Adressen entspricht, ist die globale Unicast-Adresse. Ihre Struktur ist in RFC 2374 festgelegt und sieht folgendermaßen aus:

gp  Externes Routing-Präfix (48 Bit)
gp  Site-Topologie (üblicherweise 16 Bit)
gp  Schnittstellen-Identifikationsnummer (normalerweise 64 Bit). Sie wird in der Regel automatisch generiert, oft aus der bisherigen IPv4-Adresse.

Der IPv6-Datagramm-Header wurde gegenüber dem IPv4-Header erheblich vereinfacht. Durch die Auslagerung eventueller Optionen in so genannte Erweiterungs-Header wird die Länge des Basis-Headers auf genau 320 Bit (40 Byte) festgelegt; einige Felder des IPv4-Headers wurden entfernt, weil sie keine Bedeutung mehr haben. Tabelle 13.15 zeigt den genauen Aufbau des IPv6-Headers.


Tabelle 13.15   Aufbau des IPv6-Datagramm-Headers

Byte 0 1 2 3
0 Version Klasse Flow Label
4 Payload Length Next Header Hop Limit
8 Quell-Adresse
12
16
20          
24 Ziel-Adresse
28
32
36          

Hier die Bedeutung der einzelnen Felder des Headers:

gp  Version (4 Bit): die Versionsnummer des IP-Protokolls; hier natürlich 6.
gp  Klasse (8 Bit): Dieses Feld gibt die Priorität an, mit der das Datagramm übertragen werden soll. Es ist noch nicht abschließend geklärt, wie die entsprechenden Werte aussehen sollen.